package com.monolithiot.cdn.management.common.util;

import com.monolithiot.cdn.management.common.context.Constants;
import com.monolithiot.cdn.management.common.entity.User;

import javax.servlet.http.HttpSession;

/**
 * 2018/11/20 Create by 郭文梁
 * SessionStorageUtil
 * HttpSession中保存和获取信息的工具类
 *
 * @author 郭文梁
 * @date 2018/11/20
 */
public class SessionStorageUtil {
    /**
     * 向会话中保存用户信息
     *
     * @param session 会话
     * @param user    用户对象
     */
    public static void save(HttpSession session, User user) {
        if (user == null) {
            return;
        }
        session.setAttribute(Constants.Key.USER_IN_SESSION_KEY, user);
    }

    /**
     * 从Session中获取用户信息
     *
     * @param session 会话
     * @return 用户信息（可能为Null）
     */
    public static User userFromSession(HttpSession session) {
        Object attr = session.getAttribute(Constants.Key.USER_IN_SESSION_KEY);
        if (attr == null || !(attr instanceof User)) {
            return null;
        }
        return (User) attr;
    }
}
